package com.mysteel.cyx.ddd.interfaces.web.validator;

import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpStatus;

/**
 * @Author：cyx
 * @Date：2024/3/11 16:09
 */
public interface Validator<T> {

    default void checkAndThrow(T t) {
        String errorMessage = check(t);
        if (StringUtils.isNotBlank(errorMessage)) {
            throw new AssertionException(HttpStatus.BAD_REQUEST.value(), errorMessage);
        }
    }


    /**
     * 字段级别参数校验
     *
     * @param t 被校验的对象
     * @return 字段级别检验结果
     */
    String check(T t);
}
